package cn.iocoder.yudao.module.tms.dal.dataobject.order;

import cn.iocoder.yudao.module.tms.enums.ClearanceStatusEnum;
import lombok.*;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 订单信息 DO
 *
 * @author 芋道源码
 */
@TableName("tms_order")
@KeySequence("tms_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrderDO extends BaseDO {

    /**
     * 主键
     */
    @TableId
    private Long id;
    /**
     * 关联的公司ID
     */
    private Long companyId;
    /**
     * 客户单号
     */
    private String clientNumber;
    /**
     * 英文品名
     */
    private String englishName;
    /**
     * 中文品名
     */
    private String chineseName;
    /**
     * 海关编码
     */
    private String hsCode;
    /**
     * 数量（个）
     */
    private Integer quantity;
    /**
     * 件数
     */
    private Integer packageCount;
    /**
     * 毛重
     */
    private BigDecimal grossWeight;
    /**
     * 体积
     */
    private BigDecimal volume;
    /**
     * 材质
     */
    private String material;
    /**
     * 用途
     */
    private String purpose;
    /**
     * 订单图片路径
     */
    private String orderPhoto;
    /**
     * 单价（USD）
     */
    private BigDecimal unitPrice;
    /**
     * 总价（USD）
     */
    private BigDecimal totalPrice;
    /**
     * 型号
     */
    private String modelNumber;
    /**
     * 品牌
     */
    private String brand;
    /**
     * 系统单号
     */
    private String systemNumber;
    /**
     * 清关方式
     */
    private String clearanceMethod;
    /**
     * 单证类型
     */
    private String certificateType;
    /**
     * 渠道类型
     */
    private String channelType;
    /**
     * 订单性质
     */
    private String orderProperty;
    /**
     * 处理状态
     */
    private ClearanceStatusEnum processStatus;
    
    /**
     * 是否查验
     */
    private Boolean isInspected;
    
    /**
     * 查验结果：PASS-通过, FAIL-不通过
     */
    private String inspectionResult;
    
    /**
     * 查验时间
     */
    private java.time.LocalDateTime inspectionTime;
    
    /**
     * 柜子数量
     */
    private Integer containerCount;

}